package com.molichuxing.services.infrastructure.dto.response;

import java.time.LocalDateTime;

import com.molichuxing.framework.bean.RootBean;
import com.molichuxing.services.property.PyDrivingLicenseHasLicenseEnum;
import com.molichuxing.services.property.PyIdverifyExternalStatusEnum;
import com.molichuxing.services.property.PyIdverifyTreatResultEnum;

import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = true)
public class PyDrivingLicenseNotifyLogDto extends RootBean {
    /**
     * 主键 id
     */
    private Integer id;

    /**
     * 身份验证请求id request_id
     */
    private Integer requestId;

    /**
     * 该客户是否被冻结，true：被冻结，false，：未被冻结 is_frozen
     */
    private String isFrozen;

    /**
     * 有否系统错误，true：有错误，false：无错误 has_system_error
     */
    private String hasSystemError;

    /**
     * 子报告查询状态 1：查得，2：未查得，3：其它原因未查得 treat_result
     */
    private Integer treatResult;
    
    /**
     * 子报告查询状态 1：查得，2：未查得，3：其它原因未查得 treat_result
     * treatResult=3时的错误描述信息，treatResult!=3时，该属性值为空 error_message
     */
    private String treatResultStr;

    /**
     * 是否有驾照，1-是，0-否 has_license
     */
    private Integer hasLicense;
    
    /**
     * 是否有驾照，1-是，0-否 has_license
     */
    private String hasLicenseStr;

    /**
     * 准驾车型，可能为空 car_class
     */
    private String carClass;
   
    /**
     * 驾驶证状态：正常，超分，转出，暂扣，撤销，吊销，注销，违法未处理，停止使用，事故未处理，协查，锁定，逾期未换证，延期换证，延期体检，逾期未体检，逾期未审验，其他，扣留；可能会返回多个状态名称，之间用英文分号分隔。 status
     */
    private String status;
    
    /**
     * 第三方返回状态（1：正常；2：异常； 500:调用第三方服务异常-自定义错误码） external_status
     */
    private String externalStatus;

    /**
     * 第三方返回状态 external_status
     */
    private String externalStatusStr;
    
    /**
     * 请求时间
     */
    private LocalDateTime requestTime;

    /**
     * 用户真实姓名
     */
    private String realName;
    
    
    /**
     * 第三方返回错误信息 external_error_message
     */
    private String externalErrorMessage;
    
    /**
     * 身份证号
     */
    private String idNumber;

   
    /**
     * third_py_driving_license_notify_log
     */
    private static final long serialVersionUID = 1L;
    
    public void setHasLicense(Integer hasLicense) {
    	this.hasLicense=hasLicense;
    	this.hasLicenseStr= hasLicense==null ? null : PyDrivingLicenseHasLicenseEnum.getName(hasLicense);
    }
    
    public void setTreatResult(Integer treatResult) {
    	this.treatResult=treatResult;
    	this.treatResultStr= treatResult==null ? null : PyIdverifyTreatResultEnum.getName(treatResult);
    }
    
    public void setExternalStatus(String externalStatus) {
    	this.externalStatus=externalStatus;
    	this.externalStatusStr= externalStatus==null ? null : PyIdverifyExternalStatusEnum.getName(externalStatus);
    }

    public void setHasSystemError(String hasSystemError) {
    	if(hasSystemError == null) {
    		this.hasSystemError=hasSystemError;
    	}else if("true".equals(hasSystemError)) {
    		this.hasSystemError="是";
    	}else if("false".equals(hasSystemError)) {
    		this.hasSystemError="否";
    	}else {
    		this.hasSystemError=hasSystemError;
    	}
    }
    
    public void setIsFrozen(String isFrozen) {
    	if(isFrozen == null) {
    		this.isFrozen=isFrozen;
    	}else if("true".equals(isFrozen)) {
    		this.isFrozen="是";
    	}else if("false".equals(isFrozen)) {
    		this.isFrozen="否";
    	}else {
    		this.isFrozen=isFrozen;
    	}
    }
}